/**
 * Recorre las carpetas y subcarpetas encontrando archivos
 *
 * @author Nestor Huallpa
 * */
#ifndef __ITERADORARCHIVOS__H_
#define __ITERADORARCHIVOS__H_
#include <iostream>
#include <unistd.h>
#include <string>
#include <sstream>
#include "../../../estructuras/Cola.h"
#include "dirent.h"
#include "sys/stat.h"
class IteradorArchivos {
    private:
       DIR *dp;
       std::string directorioActual;
       cola<std::string> directorios;
       struct dirent *entryNext;
       void actualizarSiguiente();
       void cambiarDirectorioActual(std::string& ruta);
       std::string corregirRuta(std::string& ruta);
    public:
       /**
        * @param: path Ruta absoluta
        * */
       IteradorArchivos(std::string& path); 
       ~IteradorArchivos();

       /**
        * @return true si hay un archivo disponible
        * **/
       bool tieneSiguiente();
       /**
        * @return string devuelve la ruta completa del archivo siguiente.
        * */
       std::string siguiente();
};
#endif

